package cn.geoportal.benoserver.service.impl;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.geoportal.benoserver.entity.Spatialdb;
import cn.geoportal.benoserver.service.SpatialdbService;
import cn.geoportal.benoserver.mapper.SpatialdbMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 *
 */
@Service
public class SpatialdbServiceImpl extends ServiceImpl<SpatialdbMapper, Spatialdb> implements SpatialdbService{
    @Autowired
    private SpatialdbMapper spatialdbMapper;

    /**
     * 1. SDB列表
     * @param page
     * @param wrapper
     * @return
     */
    @Override
    public IPage<Spatialdb> selectPage(Page page, Wrapper<Spatialdb> wrapper) {
        return spatialdbMapper.selectPage(page, wrapper);
    }

    /**
     * 2.添加SDB
     * @param spatialdb
     * @return
     */
    @Override
    public int addSpatialDb(Spatialdb spatialdb) {
        QueryWrapper<Spatialdb> wrapper = new QueryWrapper<>();
        wrapper.eq("name", spatialdb.getName());
        if(spatialdbMapper.selectCount(wrapper)>0){
            return 0;
        }
        return spatialdbMapper.insert(spatialdb);
    }

    /**
     * 3.更新指定id的SDB
     * @param spatialdb
     * @return
     */
    @Override
    public int updateSpatialDb(Spatialdb spatialdb) {
        QueryWrapper<Spatialdb> wrapper = new QueryWrapper<>();
        wrapper.ne("id", spatialdb.getId()).eq("name", spatialdb.getName());
        if(spatialdbMapper.selectCount(wrapper)>0){
            return -1;
        }
        return spatialdbMapper.updateById(spatialdb);
    }

    /**
     * 4.获取指定id的SDB
     * @param id
     * @return
     */
    @Override
    public Spatialdb findSpatialDbById(Integer id) {
        return spatialdbMapper.selectById(id);
    }

    /**
     * 5.删除指定id的SDB
     * @param id
     * @return
     */
    @Override
    public int deleteSpatialDb(Integer id) {
        return spatialdbMapper.deleteById(id);
    }
}




